<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.5) on Mon Sep 12 08:35:16 CEST 2016 -->
    <title>CircuitBreaker (Groovy Documentation)</title>
    <meta name="date" content="2016-09-12">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="CircuitBreaker (Groovy Documentation)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?io/vertx/groovy/circuitbreaker/CircuitBreaker" target="_top">Frames</a></li>
            <li><a href="CircuitBreaker.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>io.vertx.groovy.circuitbreaker</strong></div>

    <h2 title="[Groovy] Class CircuitBreaker" class="title">[Groovy] Class CircuitBreaker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>io.vertx.groovy.circuitbreaker.CircuitBreaker
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">



    <p> An implementation of the circuit breaker pattern for Vert.x
</p>

          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <ul class="blockList">
                <li class="blockList"><a name="constructor_summary"><!--   --></a>
                    <h3>Constructor Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructors Summary table">
                        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Constructor and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst">
                                <code><a href="#CircuitBreaker(java.lang.Object)">CircuitBreaker</a></strong>
                                (java.lang.Object delegate)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
        </ul>
        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#close()">close</a></strong>()</code><br>Closes the circuit breaker. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#closeHandler(Handler<Void>)">closeHandler</a></strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</code><br>Sets a  invoked when the circuit breaker state switches to close.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#create(java.lang.String, io.vertx.groovy.core.Vertx, Map<String, Object>)">create</a></strong>(java.lang.String name, <a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx, java.util.Map&lt;java.lang.String, java.lang.Object&gt; options)</code><br>Creates a new instance of <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a>.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#create(java.lang.String, io.vertx.groovy.core.Vertx)">create</a></strong>(java.lang.String name, <a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx)</code><br>Creates a new instance of <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a>, with default options.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#execute(Handler<Future<T>>)">execute</a></strong>(io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation)</code><br>Same as <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#executeWithFallback' title='CircuitBreaker.executeWithFallback'>CircuitBreaker.executeWithFallback</a> but using the circuit breaker default fallback.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#executeAndReport(Future<T>, Handler<Future<T>>)">executeAndReport</a></strong>(<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; resultFuture, io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation)</code><br>Same as <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#executeAndReportWithFallback' title='CircuitBreaker.executeAndReportWithFallback'>CircuitBreaker.executeAndReportWithFallback</a> but using the circuit breaker default
 fallback.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#executeAndReportWithFallback(Future<T>, Handler<Future<T>>, java.util.function.Function<Throwable, T>)">executeAndReportWithFallback</a></strong>(<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; resultFuture, io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation, java.util.function.Function&lt;java.lang.Throwable, T&gt; fallback)</code><br>Executes the given operation with the circuit breaker control. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#executeWithFallback(Handler<Future<T>>, java.util.function.Function<Throwable, T>)">executeWithFallback</a></strong>(io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation, java.util.function.Function&lt;java.lang.Throwable, T&gt; fallback)</code><br>Executes the given operation with the circuit breaker control. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>long</strong></code></td>
                            <td class="colLast"><code><strong><a href="#failureCount()">failureCount</a></strong>()</code><br>@return the current number of failures.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#fallback(java.util.function.Function<Throwable, T>)">fallback</a></strong>(java.util.function.Function&lt;java.lang.Throwable, T&gt; handler)</code><br>Sets a <em>default</em>  invoked when the bridge is open to handle the "request", or on failure
 if <a href="../../../../../..</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.Object</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getDelegate()">getDelegate</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#halfOpenHandler(Handler<Void>)">halfOpenHandler</a></strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</code><br>Sets a  invoked when the circuit breaker state switches to half-open.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.lang.String</strong></code></td>
                            <td class="colLast"><code><strong><a href="#name()">name</a></strong>()</code><br>@return the name of the circuit breaker.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#open()">open</a></strong>()</code><br>Explicitly opens the circuit.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#openHandler(Handler<Void>)">openHandler</a></strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</code><br>Sets a  invoked when the circuit breaker state switches to open.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#reset()">reset</a></strong>()</code><br>Resets the circuit breaker state (number of failure set to 0 and state set to closed).</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../CircuitBreakerState.html'>CircuitBreakerState</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#state()">state</a></strong>()</code><br>@return the current state.</td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</strong></code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            

            

            
            <!-- =========== CONSTRUCTOR DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="constructor_detail">
                    <!--   -->
                </a>
                    <h3>Constructor Detail</h3>
                    
                        <a name="CircuitBreaker(java.lang.Object)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><strong>CircuitBreaker</strong>(java.lang.Object delegate)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="close()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>close</strong>()</h4>
                                <p> Closes the circuit breaker. It stops sending events on its state on the event bus.
 This method is not related to the <code>close</code> state of the circuit breaker. To set the circuit breaker in the
 <code>close</code> state, use <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#reset' title='CircuitBreaker.reset'>CircuitBreaker.reset</a>. <DL><DT><B>Returns:</B></DT><DD></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="closeHandler(Handler<Void>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>closeHandler</strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</h4>
                                <p> Sets a  invoked when the circuit breaker state switches to close.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>handler</code> -  the handler, must not be <code>null</code></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="create(java.lang.String, io.vertx.groovy.core.Vertx, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>create</strong>(java.lang.String name, <a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx, java.util.Map&lt;java.lang.String, java.lang.Object&gt; options)</h4>
                                <p> Creates a new instance of <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a>.
   <DL><DT><B>Returns:</B></DT><DD>the created instance</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>name</code> -  the name</DD><DD><code>vertx</code> -  the Vert.x instance</DD><DD><code>options</code> -  the configuration option (see <a href="../../../../../../cheatsheet/CircuitBreakerOptions.html">CircuitBreakerOptions</a>)</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="create(java.lang.String, io.vertx.groovy.core.Vertx)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>create</strong>(java.lang.String name, <a href='../../../../io/vertx/groovy/core/Vertx.html'>Vertx</a> vertx)</h4>
                                <p> Creates a new instance of <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a>, with default options.
   <DL><DT><B>Returns:</B></DT><DD>the created instance</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>name</code> -  the name</DD><DD><code>vertx</code> -  the Vert.x instance</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="execute(Handler<Future<T>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; <strong>execute</strong>(io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation)</h4>
                                <p> Same as <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#executeWithFallback' title='CircuitBreaker.executeWithFallback'>CircuitBreaker.executeWithFallback</a> but using the circuit breaker default fallback.
   <DL><DT><B>Returns:</B></DT><DD>a future object completed when the operation or its fallback completes</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>operation</code> -  the operation</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="executeAndReport(Future<T>, Handler<Future<T>>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>executeAndReport</strong>(<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; resultFuture, io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation)</h4>
                                <p> Same as <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#executeAndReportWithFallback' title='CircuitBreaker.executeAndReportWithFallback'>CircuitBreaker.executeAndReportWithFallback</a> but using the circuit breaker default
 fallback.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>resultFuture</code> -  the future on which the operation result is reported</DD><DD><code>operation</code> -  the operation</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="executeAndReportWithFallback(Future<T>, Handler<Future<T>>, java.util.function.Function<Throwable, T>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>executeAndReportWithFallback</strong>(<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; resultFuture, io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation, java.util.function.Function&lt;java.lang.Throwable, T&gt; fallback)</h4>
                                <p> Executes the given operation with the circuit breaker control. The operation is generally calling an
 <em>external</em> system. The operation receives a  object as parameter and <strong>must</strong>
 call  when the operation has terminated successfully. The operation must also
 call  in case of failure.
 <p>
 The operation is not invoked if the circuit breaker is open, and the given fallback is called immediately. The
 circuit breaker also monitor the completion of the operation before a configure timeout. The operation is
 considered as failed if it does not terminate in time.
 <p>
 Unlike <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html#executeWithFallback' title='CircuitBreaker.executeWithFallback'>CircuitBreaker.executeWithFallback</a>,  this method does return a  object, but
 let the caller pass a  object on which the result is reported. If the fallback is called, the future
 is successfully completed with the value returned by the fallback function. If the fallback throws an exception,
 the future is marked as failed.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>resultFuture</code> -  the future on which the operation result is reported</DD><DD><code>operation</code> -  the operation</DD><DD><code>fallback</code> -  the fallback function. It gets an exception as parameter and returns the <em>fallback</em> result</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="executeWithFallback(Handler<Future<T>>, java.util.function.Function<Throwable, T>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt; <strong>executeWithFallback</strong>(io.vertx.core.Handler&lt;<a href='../../../../io/vertx/groovy/core/Future.html' title='Future'>Future</a>&lt;T&gt;&gt; operation, java.util.function.Function&lt;java.lang.Throwable, T&gt; fallback)</h4>
                                <p> Executes the given operation with the circuit breaker control. The operation is generally calling an
 <em>external</em> system. The operation receives a  object as parameter and <strong>must</strong>
 call  when the operation has terminated successfully. The operation must also
 call  in case of failure.
 <p>
 The operation is not invoked if the circuit breaker is open, and the given fallback is called immediately. The
 circuit breaker also monitor the completion of the operation before a configure timeout. The operation is
 considered as failed if it does not terminate in time.
 <p>
 This method returns a  object to retrieve the status and result of the operation, with the status
 being a success or a failure. If the fallback is called, the returned future is successfully completed with the
 value returned from the fallback. If the fallback throws an exception, the returned future is marked as failed.
   <DL><DT><B>Returns:</B></DT><DD>a future object completed when the operation or its fallback completes</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>operation</code> -  the operation</DD><DD><code>fallback</code> -  the fallback function. It gets an exception as parameter and returns the <em>fallback</em> result</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="failureCount()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>long <strong>failureCount</strong>()</h4>
                                <p>
   <DL><DT><B>Returns:</B></DT><DD>the current number of failures.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="fallback(java.util.function.Function<Throwable, T>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>fallback</strong>(java.util.function.Function&lt;java.lang.Throwable, T&gt; handler)</h4>
                                <p> Sets a <em>default</em>  invoked when the bridge is open to handle the "request", or on failure
 if <a href="../../../../../../cheatsheet/CircuitBreakerOptions.html">CircuitBreakerOptions</a> is enabled.
 <p>
 The function gets the exception as parameter and returns the <em>fallback</em> result.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>handler</code> -  the handler</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getDelegate()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.lang.Object <strong>getDelegate</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="halfOpenHandler(Handler<Void>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>halfOpenHandler</strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</h4>
                                <p> Sets a  invoked when the circuit breaker state switches to half-open.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>handler</code> -  the handler, must not be <code>null</code></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="name()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.lang.String <strong>name</strong>()</h4>
                                <p>
   <DL><DT><B>Returns:</B></DT><DD>the name of the circuit breaker.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="open()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>open</strong>()</h4>
                                <p> Explicitly opens the circuit.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="openHandler(Handler<Void>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>openHandler</strong>(io.vertx.core.Handler&lt;java.lang.Void&gt; handler)</h4>
                                <p> Sets a  invoked when the circuit breaker state switches to open.
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>handler</code> -  the handler, must not be <code>null</code></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="reset()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html'>CircuitBreaker</a> <strong>reset</strong>()</h4>
                                <p> Resets the circuit breaker state (number of failure set to 0 and state set to closed).
   <DL><DT><B>Returns:</B></DT><DD>the current <a href='../../../../io/vertx/groovy/circuitbreaker/CircuitBreaker.html' title='CircuitBreaker'>CircuitBreaker</a></DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="state()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../CircuitBreakerState.html'>CircuitBreakerState</a> <strong>state</strong>()</h4>
                                <p>
   <DL><DT><B>Returns:</B></DT><DD>the current state.</DD></DL></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?io/vertx/groovy/circuitbreaker/CircuitBreaker" target="_top">Frames</a></li>
            <li><a href="CircuitBreaker.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>